2023年07月31日
電子出版事業部新刊情報 total 355 count

ビットで理解するC#の数値入門: 1を足したのになぜ値が増えないの? 川俣晶

Written By: 株式会社ピーデー・サイト管理者連絡先

  • タイトル ビットで理解するC#の数値入門: 1を足したのになぜ値が増えないの?
  • 著者 川俣晶
  • 分類 技術解説
  • 参照 https://www.amazon.co.jp/dp/B0CD6LLQ9Q

概要 §

 float型の変数に1を足したのに、値が変わっていない! いったいどうして?

 わざとオーバーフローさせて使う整数、移動する小数点、どこにもないのにあると仮定する1という数字、負数の時だけ1つ扱える数値が多い、常識を超えた挙動は全てビットに秘密があった!

目次

まえがき

なぜ無限ループしてしまうのか

サンプルソース

なぜ加算したのに値は増えないのか

なぜ10と計算させると値が狂うのか

バイナリー表現の秘密

2進数8進数10進数12進数16進数60進数

型名オールスター

限界を超えた加算の秘密

限界を超えた減算の秘密

check/uncheck文の秘密

sbyte型と符号ビットの秘密

足し算と引き算は同じと意識したコード例

なぜsbyte型の負数はConvert.ToStringメソッドで桁数が増えるのか

なぜ負数は表現できる数が1つ多いのか

short/ushort型とエンディアンの秘密

int/uint型でもトラブルは起きる

long/ulong型は万能ではない

Int128/UInt128という破格のスーパー型

nint/nuintはビット数が決まっていない

固定小数点と浮動小数点の違い

float型と浮動小数点の秘密

浮動小数点の期待を裏切る非正規化数の闇

double型とHalf型はビット数が異なる

decimal型と表現力の秘密

char型とstring型の秘密

AND/OR/XOR/シフトのビット演算子の秘密

列挙型とORの関係

最大値から最小値へ・数値のオーバーラップを利用した例

整数型の最小値と最大値が決まる理屈

まとめ・数値の理解と高速化のツボ

あとがき・ビットは続くよどこまでも